#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<stdlib.h>
const int num = 10;//创建十个子进程

void worker()
{
	int cnt = 12;
	while(cnt)
	{
		printf("child %d is running, cnt:%d\n",getpid(),cnt);
		cnt--;
		sleep(1);
	}
}

int main()
{
	for(int i = 0;i < num;i++)
	{
		pid_t id  = fork();
		if(id < 0)break;
		if(id == 0)
		{
			//子进程进行的操作
			worker();
			exit(0);//C里面用过，在这里是使该子进程直接退出
		}
	//父进程进行的操作		
	printf("father create child process success!child pid:%d\n",id);
	sleep(1);
	}
	//父进程才会执行到这里
	sleep(15);

	//测试fork创建子进程的过程
//	printf("before fork:i am a prcess,pid:%d,ppid:%d\n",getpid(),getppid());
//	pid_t id = fork();
//	printf("after fork:i am a prcess,pid:%d,ppid:%d\n",getpid(),getppid());


//通过一个死循环查看一个进程的启动
//	while(1)
//	{
//		printf("i am a process!\n");
//		sleep(2);
//	}
	return 0;
}
